package cn.iocoder.yudao.module.system.enums.roleaccess;

import java.util.Arrays;
import java.util.List;

public enum RequestMethodEnum {

    /**
     * 常规获取数据方式
     */
    GET,

    /**
     * 检查，默认是非空检查，返回数据总数
     */
    HEAD,

    /**
     * Safe, Single, Simple
     * <br > 限制性GET，通过POST来GET数据，不显示请求内容和返回结果，并且校验请求，一般用于对安全要求比较高的请求
     */
    GETS,

    /**
     * Safe, Single, Simple
     * <br > 限制性HEAD，通过POST来HEAD数据，不显示请求内容和返回结果，并且校验请求，一般用于对安全要求比较高的请求
     */
    HEADS,

    /**
     * 新增(或者说插入)数据
     */
    POST,

    /**
     * 修改数据，只修改传入字段对应的值
     */
    PUT,

    /**
     * 删除数据
     */
    DELETE,

    /**
     * json 包含多条语句，支持增删改查、函数调用
     */
    CRUD;

    public static final RequestMethodEnum[] ALL = new RequestMethodEnum[]{GET, HEAD, GETS, HEADS, POST, PUT, DELETE, CRUD};
    public static final List<String> ALL_NAME_LIST = Arrays.asList(
            GET.name(), HEAD.name(), GETS.name(), HEADS.name(), POST.name(), PUT.name(), DELETE.name(), CRUD.name()
    );

    public static String getName(RequestMethodEnum method) {
        return method == null ? GET.name() : method.name();
    }

}
